// $ANTLR 3.1.2 F:\\Work\\Graph2\\Grammar\\graph2.g 2009-06-07 18:06:20


using System;
using Antlr.Runtime;
using IList 		= System.Collections.IList;
using ArrayList 	= System.Collections.ArrayList;
using Stack 		= Antlr.Runtime.Collections.StackList;


public class graph2Lexer : Lexer {
    public const int INTEGER = 11;
    public const int MOD = 10;
    public const int NEGATE = 5;
    public const int PARAM = 4;
    public const int FLOAT = 12;
    public const int MINUS = 7;
    public const int MULT = 8;
    public const int EOF = -1;
    public const int T__19 = 19;
    public const int T__16 = 16;
    public const int T__15 = 15;
    public const int POW = 14;
    public const int T__18 = 18;
    public const int T__17 = 17;
    public const int IDENT = 13;
    public const int PLUS = 6;
    public const int DIV = 9;

    // delegates
    // delegators

    public graph2Lexer() 
    {
		InitializeCyclicDFAs();
    }
    public graph2Lexer(ICharStream input)
		: this(input, null) {
    }
    public graph2Lexer(ICharStream input, RecognizerSharedState state)
		: base(input, state) {
		InitializeCyclicDFAs(); 

    }
    
    override public string GrammarFileName
    {
    	get { return "F:\\Work\\Graph2\\Grammar\\graph2.g";} 
    }

    // $ANTLR start "T__15"
    public void mT__15() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__15;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:7:7: ( '(' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:7:9: '('
            {
            	Match('('); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__15"

    // $ANTLR start "T__16"
    public void mT__16() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__16;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:8:7: ( ',' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:8:9: ','
            {
            	Match(','); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__16"

    // $ANTLR start "T__17"
    public void mT__17() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__17;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:9:7: ( ')' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:9:9: ')'
            {
            	Match(')'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__17"

    // $ANTLR start "T__18"
    public void mT__18() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__18;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:10:7: ( '[' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:10:9: '['
            {
            	Match('['); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__18"

    // $ANTLR start "T__19"
    public void mT__19() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = T__19;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:11:7: ( ']' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:11:9: ']'
            {
            	Match(']'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "T__19"

    // $ANTLR start "PLUS"
    public void mPLUS() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = PLUS;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:44:6: ( '+' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:44:8: '+'
            {
            	Match('+'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "PLUS"

    // $ANTLR start "MINUS"
    public void mMINUS() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = MINUS;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:45:7: ( '-' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:45:9: '-'
            {
            	Match('-'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "MINUS"

    // $ANTLR start "MULT"
    public void mMULT() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = MULT;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:47:6: ( '*' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:47:8: '*'
            {
            	Match('*'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "MULT"

    // $ANTLR start "DIV"
    public void mDIV() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = DIV;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:48:5: ( '/' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:48:7: '/'
            {
            	Match('/'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "DIV"

    // $ANTLR start "MOD"
    public void mMOD() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = MOD;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:49:5: ( '%' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:49:7: '%'
            {
            	Match('%'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "MOD"

    // $ANTLR start "INTEGER"
    public void mINTEGER() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = INTEGER;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:51:9: ( ( '0' .. '9' )+ )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:51:11: ( '0' .. '9' )+
            {
            	// F:\\Work\\Graph2\\Grammar\\graph2.g:51:11: ( '0' .. '9' )+
            	int cnt1 = 0;
            	do 
            	{
            	    int alt1 = 2;
            	    int LA1_0 = input.LA(1);

            	    if ( ((LA1_0 >= '0' && LA1_0 <= '9')) )
            	    {
            	        alt1 = 1;
            	    }


            	    switch (alt1) 
            		{
            			case 1 :
            			    // F:\\Work\\Graph2\\Grammar\\graph2.g:51:12: '0' .. '9'
            			    {
            			    	MatchRange('0','9'); 

            			    }
            			    break;

            			default:
            			    if ( cnt1 >= 1 ) goto loop1;
            		            EarlyExitException eee1 =
            		                new EarlyExitException(1, input);
            		            throw eee1;
            	    }
            	    cnt1++;
            	} while (true);

            	loop1:
            		;	// Stops C# compiler whinging that label 'loop1' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "INTEGER"

    // $ANTLR start "FLOAT"
    public void mFLOAT() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = FLOAT;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:53:7: ( ( '0' .. '9' )* '.' ( '0' .. '9' )+ )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:53:9: ( '0' .. '9' )* '.' ( '0' .. '9' )+
            {
            	// F:\\Work\\Graph2\\Grammar\\graph2.g:53:9: ( '0' .. '9' )*
            	do 
            	{
            	    int alt2 = 2;
            	    int LA2_0 = input.LA(1);

            	    if ( ((LA2_0 >= '0' && LA2_0 <= '9')) )
            	    {
            	        alt2 = 1;
            	    }


            	    switch (alt2) 
            		{
            			case 1 :
            			    // F:\\Work\\Graph2\\Grammar\\graph2.g:53:10: '0' .. '9'
            			    {
            			    	MatchRange('0','9'); 

            			    }
            			    break;

            			default:
            			    goto loop2;
            	    }
            	} while (true);

            	loop2:
            		;	// Stops C# compiler whining that label 'loop2' has no statements

            	Match('.'); 
            	// F:\\Work\\Graph2\\Grammar\\graph2.g:53:25: ( '0' .. '9' )+
            	int cnt3 = 0;
            	do 
            	{
            	    int alt3 = 2;
            	    int LA3_0 = input.LA(1);

            	    if ( ((LA3_0 >= '0' && LA3_0 <= '9')) )
            	    {
            	        alt3 = 1;
            	    }


            	    switch (alt3) 
            		{
            			case 1 :
            			    // F:\\Work\\Graph2\\Grammar\\graph2.g:53:26: '0' .. '9'
            			    {
            			    	MatchRange('0','9'); 

            			    }
            			    break;

            			default:
            			    if ( cnt3 >= 1 ) goto loop3;
            		            EarlyExitException eee3 =
            		                new EarlyExitException(3, input);
            		            throw eee3;
            	    }
            	    cnt3++;
            	} while (true);

            	loop3:
            		;	// Stops C# compiler whinging that label 'loop3' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "FLOAT"

    // $ANTLR start "IDENT"
    public void mIDENT() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = IDENT;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:60:7: ( ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )* )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:60:9: ( 'a' .. 'z' | 'A' .. 'Z' | '_' ) ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
            {
            	if ( (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z') ) 
            	{
            	    input.Consume();

            	}
            	else 
            	{
            	    MismatchedSetException mse = new MismatchedSetException(null,input);
            	    Recover(mse);
            	    throw mse;}

            	// F:\\Work\\Graph2\\Grammar\\graph2.g:60:37: ( 'a' .. 'z' | 'A' .. 'Z' | '_' | '0' .. '9' )*
            	do 
            	{
            	    int alt4 = 2;
            	    int LA4_0 = input.LA(1);

            	    if ( ((LA4_0 >= '0' && LA4_0 <= '9') || (LA4_0 >= 'A' && LA4_0 <= 'Z') || LA4_0 == '_' || (LA4_0 >= 'a' && LA4_0 <= 'z')) )
            	    {
            	        alt4 = 1;
            	    }


            	    switch (alt4) 
            		{
            			case 1 :
            			    // F:\\Work\\Graph2\\Grammar\\graph2.g:
            			    {
            			    	if ( (input.LA(1) >= '0' && input.LA(1) <= '9') || (input.LA(1) >= 'A' && input.LA(1) <= 'Z') || input.LA(1) == '_' || (input.LA(1) >= 'a' && input.LA(1) <= 'z') ) 
            			    	{
            			    	    input.Consume();

            			    	}
            			    	else 
            			    	{
            			    	    MismatchedSetException mse = new MismatchedSetException(null,input);
            			    	    Recover(mse);
            			    	    throw mse;}


            			    }
            			    break;

            			default:
            			    goto loop4;
            	    }
            	} while (true);

            	loop4:
            		;	// Stops C# compiler whining that label 'loop4' has no statements


            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "IDENT"

    // $ANTLR start "POW"
    public void mPOW() // throws RecognitionException [2]
    {
    		try
    		{
            int _type = POW;
    	int _channel = DEFAULT_TOKEN_CHANNEL;
            // F:\\Work\\Graph2\\Grammar\\graph2.g:62:5: ( '^' )
            // F:\\Work\\Graph2\\Grammar\\graph2.g:62:7: '^'
            {
            	Match('^'); 

            }

            state.type = _type;
            state.channel = _channel;
        }
        finally 
    	{
        }
    }
    // $ANTLR end "POW"

    override public void mTokens() // throws RecognitionException 
    {
        // F:\\Work\\Graph2\\Grammar\\graph2.g:1:8: ( T__15 | T__16 | T__17 | T__18 | T__19 | PLUS | MINUS | MULT | DIV | MOD | INTEGER | FLOAT | IDENT | POW )
        int alt5 = 14;
        alt5 = dfa5.Predict(input);
        switch (alt5) 
        {
            case 1 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:10: T__15
                {
                	mT__15(); 

                }
                break;
            case 2 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:16: T__16
                {
                	mT__16(); 

                }
                break;
            case 3 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:22: T__17
                {
                	mT__17(); 

                }
                break;
            case 4 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:28: T__18
                {
                	mT__18(); 

                }
                break;
            case 5 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:34: T__19
                {
                	mT__19(); 

                }
                break;
            case 6 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:40: PLUS
                {
                	mPLUS(); 

                }
                break;
            case 7 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:45: MINUS
                {
                	mMINUS(); 

                }
                break;
            case 8 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:51: MULT
                {
                	mMULT(); 

                }
                break;
            case 9 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:56: DIV
                {
                	mDIV(); 

                }
                break;
            case 10 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:60: MOD
                {
                	mMOD(); 

                }
                break;
            case 11 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:64: INTEGER
                {
                	mINTEGER(); 

                }
                break;
            case 12 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:72: FLOAT
                {
                	mFLOAT(); 

                }
                break;
            case 13 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:78: IDENT
                {
                	mIDENT(); 

                }
                break;
            case 14 :
                // F:\\Work\\Graph2\\Grammar\\graph2.g:1:84: POW
                {
                	mPOW(); 

                }
                break;

        }

    }


    protected DFA5 dfa5;
	private void InitializeCyclicDFAs()
	{
	    this.dfa5 = new DFA5(this);
	}

    const string DFA5_eotS =
        "\x0b\uffff\x01\x0f\x04\uffff";
    const string DFA5_eofS =
        "\x10\uffff";
    const string DFA5_minS =
        "\x01\x25\x0a\uffff\x01\x2e\x04\uffff";
    const string DFA5_maxS =
        "\x01\x7a\x0a\uffff\x01\x39\x04\uffff";
    const string DFA5_acceptS =
        "\x01\uffff\x01\x01\x01\x02\x01\x03\x01\x04\x01\x05\x01\x06\x01"+
        "\x07\x01\x08\x01\x09\x01\x0a\x01\uffff\x01\x0c\x01\x0d\x01\x0e\x01"+
        "\x0b";
    const string DFA5_specialS =
        "\x10\uffff}>";
    static readonly string[] DFA5_transitionS = {
            "\x01\x0a\x02\uffff\x01\x01\x01\x03\x01\x08\x01\x06\x01\x02"+
            "\x01\x07\x01\x0c\x01\x09\x0a\x0b\x07\uffff\x1a\x0d\x01\x04\x01"+
            "\uffff\x01\x05\x01\x0e\x01\x0d\x01\uffff\x1a\x0d",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "",
            "\x01\x0c\x01\uffff\x0a\x0b",
            "",
            "",
            "",
            ""
    };

    static readonly short[] DFA5_eot = DFA.UnpackEncodedString(DFA5_eotS);
    static readonly short[] DFA5_eof = DFA.UnpackEncodedString(DFA5_eofS);
    static readonly char[] DFA5_min = DFA.UnpackEncodedStringToUnsignedChars(DFA5_minS);
    static readonly char[] DFA5_max = DFA.UnpackEncodedStringToUnsignedChars(DFA5_maxS);
    static readonly short[] DFA5_accept = DFA.UnpackEncodedString(DFA5_acceptS);
    static readonly short[] DFA5_special = DFA.UnpackEncodedString(DFA5_specialS);
    static readonly short[][] DFA5_transition = DFA.UnpackEncodedStringArray(DFA5_transitionS);

    protected class DFA5 : DFA
    {
        public DFA5(BaseRecognizer recognizer)
        {
            this.recognizer = recognizer;
            this.decisionNumber = 5;
            this.eot = DFA5_eot;
            this.eof = DFA5_eof;
            this.min = DFA5_min;
            this.max = DFA5_max;
            this.accept = DFA5_accept;
            this.special = DFA5_special;
            this.transition = DFA5_transition;

        }

        override public string Description
        {
            get { return "1:1: Tokens : ( T__15 | T__16 | T__17 | T__18 | T__19 | PLUS | MINUS | MULT | DIV | MOD | INTEGER | FLOAT | IDENT | POW );"; }
        }

    }

 
    
}
